package com.weijian.dto.ai;

import com.weijian.dto.data.ChartData;
import com.weijian.dto.data.QueryResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.OffsetDateTime;

/**
 * AI对话响应DTO
 * 用于封装完整的对话响应信息，包括内容、意图识别结果、SQL等元数据
 *
 * @author miaoma
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ConversationResponseDTO {

    /**
     * AI消息ID（保存到数据库后的ID）
     */
    private Long messageId;

    /**
     * AI响应内容
     */
    private String content;

    /**
     * 生成的SQL语句（仅在数据分析场景下有值）
     */
    private String sql;

    /**
     * 响应生成时间戳
     */
    private OffsetDateTime timestamp;

    /**
     * 处理耗时（毫秒）
     */
    private Long processingTime;

    /**
     * SQL查询结果（仅在数据分析场景且SQL执行成功时有值）
     */
    private QueryResult queryResult;

    /**
     * 图表数据（仅在数据分析场景且有查询结果时有值）
     */
    private ChartData chartData;

    /**
     * SQL执行状态：SUCCESS（成功）、FAILED（失败）、NOT_EXECUTED（未执行）
     */
    private String sqlStatus;

    /**
     * SQL执行错误信息（仅在执行失败时有值）
     */
    private String sqlError;
}
